# base image
FROM cjnusun/hadoop:v2.0

# MAINTAINER
MAINTAINER hnlgcjj@aliyun.com

WORKDIR /home/cjj
# 说明
# 一个裸机装hadoop需要装的一些软件服务 这里需要安装对应的软件 如jdk，hadoop(包含了hdfs和mapreduce)等
# 1、设置root密码
# RUN echo "root:123456" | chpasswd
# 2、添加 haddop用户并添加 sudo 服务并把hadoop用户添加进去
# RUN useradd hadoop 
# RUN echo "hadoop:123456" | chpasswd
# RUN echo "hadoop ALL=(ALL)ALL" >> /etc/sudoers
# yum install -y sudo which openssh-server openssh-clients
# sudo yum install glibc.i686
# RUN usermod -G sudo cjj
# RUN sed -i ‘s/UsePAM yes/UsePAM no/g’ /etc/ssh/sshd_config 
# RUN mkdir /var/run/sshd 

# 3、docker开机启动 使用sshd服务
RUN echo "/usr/sbin/sshd -D &" >> ~/.bashrc 
# 添加文件到镜像中 语法  ADD 当前系统文件路径 目标镜像路径

# 这个代码并不起作用，直接通过env 设置环境变量
#RUN source /etc/profile
# 设置主机名绑定ip
ENV JAVA_HOME /opt/app/jdk1.8
ENV HADOOP_HOME /opt/app/hadoop-2.7.7
ENV PATH $PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

# ENV 设置环境变量
# WORKDIR 设置默认工作目录
# ENTRYPOINT 配置容器启动时的命令，并且不会被docker run 命令覆盖 常与cmd 一起使用

# 通过EXPOSE暴露的端口并不能发布出去，需要在run运行容器的时候 添加-p参数
EXPOSE 22 2122 8030-8033 8040 8042 8088 19888 49707 50010 50020 50070 50075 50090

USER cjj
# docker run 执行的参数
CMD ["/usr/sbin/init","/bin/bash"]
